import { IPSAppLan } from './ipsapp-lan';
import { IPSAppMethodDTO } from './ipsapp-method-dto';
import { IPSAppModule } from './ipsapp-module';
import { IPSAppPkg } from './ipsapp-pkg';
import { IPSAppResource } from './ipsapp-resource';
import { IPSAppUIStyle } from './ipsapp-uistyle';
import { IPSAppUtilPage } from './ipsapp-util-page';
import { IPSApplication } from './ipsapplication';
import { IPSApplicationLogic } from './ipsapplication-logic';
import { IPSApplicationUI } from './ipsapplication-ui';
import { IPSSubAppRef } from './ipssub-app-ref';
import { IPSAppMenuModel } from './appmenu/ipsapp-menu-model';
import { IPSAppCodeList } from './codelist/ipsapp-code-list';
import { IPSAppCounter } from './control/ipsapp-counter';
import { IPSAppPortlet } from './control/ipsapp-portlet';
import { IPSAppPortletCat } from './control/ipsapp-portlet-cat';
import { IPSAppDERS } from './dataentity/ipsapp-ders';
import { IPSAppDEUIAction } from './dataentity/ipsapp-deuiaction';
import { IPSAppDataEntity } from './dataentity/ipsapp-data-entity';
import { IPSAppFunc } from './func/ipsapp-func';
import { IPSAppUILogic } from './logic/ipsapp-uilogic';
import { IPSAppMsgTempl } from './msg/ipsapp-msg-templ';
import { IPSAppEditorStyleRef } from './res/ipsapp-editor-style-ref';
import { IPSAppPFPluginRef } from './res/ipsapp-pfplugin-ref';
import { IPSAppSubViewTypeRef } from './res/ipsapp-sub-view-type-ref';
import { IPSAppUITheme } from './theme/ipsapp-uitheme';
import { IPSAppUserMode } from './usermode/ipsapp-user-mode';
import { IPSAppUtil } from './util/ipsapp-util';
import { IPSAppIndexView } from './view/ipsapp-index-view';
import { IPSAppView } from './view/ipsapp-view';
import { IPSAppViewMsg } from './view/ipsapp-view-msg';
import { IPSAppViewMsgGroup } from './view/ipsapp-view-msg-group';
import { IPSAppWF } from './wf/ipsapp-wf';
import { IPSDEOPPriv } from '../dataentity/priv/ipsdeoppriv';
import { IPSLanguageRes } from '../res/ipslanguage-res';
import { IPSSysCss } from '../res/ipssys-css';
import { IPSSysSFPlugin } from '../res/ipssys-sfplugin';
import { IPSSysTestPrj } from '../testing/ipssys-test-prj';
import { PSModelObjectImpl } from '../psmodel-object-impl';

export class PSApplicationImpl extends PSModelObjectImpl implements IPSApplication, IPSApplicationUI {
  get aCMinChars(): number {
    return this.M.aCMinChars;
  }

  protected allaccesskeys: string[] | null = null;

  getAllAccessKeys(): string[] | null {
    if (this.allaccesskeys == null) {
      const value = this.M.allAccessKeys;
      if (value == null) {
        return null;
      }
      const arrayNode: any[] = value;
      if (arrayNode.length == 0) {
        return null;
      }
      const list: string[] = [];
      for (let i = 0; i < arrayNode.length; i++) {
        list.push(arrayNode[i]);
      }
      this.allaccesskeys = list;
    }
    return this.allaccesskeys.length == 0 ? null : this.allaccesskeys;
  }

  get allAccessKeys(): string[] | null {
    return this.getAllAccessKeys();
  }

  protected allpsappcodelists: IPSAppCodeList[] | null = null;

  getAllPSAppCodeLists(): IPSAppCodeList[] | null {
    if (this.allpsappcodelists == null) {
      this.allpsappcodelists = this.fillChildListModel(this.M.getAllPSAppCodeLists, 'app.codelist.IPSAppCodeList') as IPSAppCodeList[];
    }
    return this.allpsappcodelists;
  }

  get allPSAppCodeLists(): IPSAppCodeList[] | null {
    return this.getAllPSAppCodeLists();
  }

  findPSAppCodeList(objKey: any): IPSAppCodeList | null {
    return this.getPSModel5('app.codelist.IPSAppCodeList', this.getAllPSAppCodeLists(), objKey) as IPSAppCodeList;
  }

  protected allpsappcounters: IPSAppCounter[] | null = null;

  getAllPSAppCounters(): IPSAppCounter[] | null {
    if (this.allpsappcounters == null) {
      this.allpsappcounters = this.fillChildListModel(this.M.getAllPSAppCounters, 'app.control.IPSAppCounter') as IPSAppCounter[];
    }
    return this.allpsappcounters;
  }

  get allPSAppCounters(): IPSAppCounter[] | null {
    return this.getAllPSAppCounters();
  }

  findPSAppCounter(objKey: any): IPSAppCounter | null {
    return this.getPSModel5('app.control.IPSAppCounter', this.getAllPSAppCounters(), objKey) as IPSAppCounter;
  }

  protected allpsappderss: IPSAppDERS[] | null = null;

  getAllPSAppDERSs(): IPSAppDERS[] | null {
    if (this.allpsappderss == null) {
      this.allpsappderss = this.fillChildListModel(this.M.getAllPSAppDERSs, 'app.dataentity.IPSAppDERS') as IPSAppDERS[];
    }
    return this.allpsappderss;
  }

  get allPSAppDERSs(): IPSAppDERS[] | null {
    return this.getAllPSAppDERSs();
  }

  findPSAppDERS(objKey: any): IPSAppDERS | null {
    return this.getPSModel5('app.dataentity.IPSAppDERS', this.getAllPSAppDERSs(), objKey) as IPSAppDERS;
  }

  protected allpsappdeuiactions: IPSAppDEUIAction[] | null = null;

  getAllPSAppDEUIActions(): IPSAppDEUIAction[] | null {
    if (this.allpsappdeuiactions == null) {
      this.allpsappdeuiactions = this.fillChildListModel(this.M.getAllPSAppDEUIActions, 'app.dataentity.IPSAppDEUIAction') as IPSAppDEUIAction[];
    }
    return this.allpsappdeuiactions;
  }

  get allPSAppDEUIActions(): IPSAppDEUIAction[] | null {
    return this.getAllPSAppDEUIActions();
  }

  findPSAppDEUIAction(objKey: any): IPSAppDEUIAction | null {
    return this.getPSModel5('app.dataentity.IPSAppDEUIAction', this.getAllPSAppDEUIActions(), objKey) as IPSAppDEUIAction;
  }

  protected allpsappdataentities: IPSAppDataEntity[] | null = null;

  getAllPSAppDataEntities(): IPSAppDataEntity[] | null {
    if (this.allpsappdataentities == null) {
      this.allpsappdataentities = this.fillChildListModel(this.M.getAllPSAppDataEntities, 'app.dataentity.IPSAppDataEntity') as IPSAppDataEntity[];
    }
    return this.allpsappdataentities;
  }

  get allPSAppDataEntities(): IPSAppDataEntity[] | null {
    return this.getAllPSAppDataEntities();
  }

  findPSAppDataEntity(objKey: any): IPSAppDataEntity | null {
    return this.getPSModel5('app.dataentity.IPSAppDataEntity', this.getAllPSAppDataEntities(), objKey) as IPSAppDataEntity;
  }

  protected allpsappeditorstylerefs: IPSAppEditorStyleRef[] | null = null;

  getAllPSAppEditorStyleRefs(): IPSAppEditorStyleRef[] | null {
    if (this.allpsappeditorstylerefs == null) {
      this.allpsappeditorstylerefs = this.fillChildListModel(this.M.getAllPSAppEditorStyleRefs, 'app.res.IPSAppEditorStyleRef') as IPSAppEditorStyleRef[];
    }
    return this.allpsappeditorstylerefs;
  }

  get allPSAppEditorStyleRefs(): IPSAppEditorStyleRef[] | null {
    return this.getAllPSAppEditorStyleRefs();
  }

  findPSAppEditorStyleRef(objKey: any): IPSAppEditorStyleRef | null {
    return this.getPSModel5('app.res.IPSAppEditorStyleRef', this.getAllPSAppEditorStyleRefs(), objKey) as IPSAppEditorStyleRef;
  }

  protected allpsappfuncs: IPSAppFunc[] | null = null;

  getAllPSAppFuncs(): IPSAppFunc[] | null {
    if (this.allpsappfuncs == null) {
      this.allpsappfuncs = this.fillChildListModel(this.M.getAllPSAppFuncs, 'app.func.IPSAppFunc') as IPSAppFunc[];
    }
    return this.allpsappfuncs;
  }

  get allPSAppFuncs(): IPSAppFunc[] | null {
    return this.getAllPSAppFuncs();
  }

  findPSAppFunc(objKey: any): IPSAppFunc | null {
    return this.getPSModel5('app.func.IPSAppFunc', this.getAllPSAppFuncs(), objKey) as IPSAppFunc;
  }

  protected allpsapplans: IPSAppLan[] | null = null;

  getAllPSAppLans(): IPSAppLan[] | null {
    if (this.allpsapplans == null) {
      this.allpsapplans = this.fillChildListModel(this.M.getAllPSAppLans, 'app.IPSAppLan') as IPSAppLan[];
    }
    return this.allpsapplans;
  }

  get allPSAppLans(): IPSAppLan[] | null {
    return this.getAllPSAppLans();
  }

  findPSAppLan(objKey: any): IPSAppLan | null {
    return this.getPSModel5('app.IPSAppLan', this.getAllPSAppLans(), objKey) as IPSAppLan;
  }

  protected allpsappmenumodels: IPSAppMenuModel[] | null = null;

  getAllPSAppMenuModels(): IPSAppMenuModel[] | null {
    if (this.allpsappmenumodels == null) {
      this.allpsappmenumodels = this.fillChildListModel(this.M.getAllPSAppMenuModels, 'app.appmenu.IPSAppMenuModel') as IPSAppMenuModel[];
    }
    return this.allpsappmenumodels;
  }

  get allPSAppMenuModels(): IPSAppMenuModel[] | null {
    return this.getAllPSAppMenuModels();
  }

  findPSAppMenuModel(objKey: any): IPSAppMenuModel | null {
    return this.getPSModel5('app.appmenu.IPSAppMenuModel', this.getAllPSAppMenuModels(), objKey) as IPSAppMenuModel;
  }

  protected allpsappmethoddtos: IPSAppMethodDTO[] | null = null;

  getAllPSAppMethodDTOs(): IPSAppMethodDTO[] | null {
    if (this.allpsappmethoddtos == null) {
      this.allpsappmethoddtos = this.fillChildListModel(this.M.getAllPSAppMethodDTOs, 'app.IPSAppMethodDTO') as IPSAppMethodDTO[];
    }
    return this.allpsappmethoddtos;
  }

  get allPSAppMethodDTOs(): IPSAppMethodDTO[] | null {
    return this.getAllPSAppMethodDTOs();
  }

  findPSAppMethodDTO(objKey: any): IPSAppMethodDTO | null {
    return this.getPSModel5('app.IPSAppMethodDTO', this.getAllPSAppMethodDTOs(), objKey) as IPSAppMethodDTO;
  }

  protected allpsappmodules: IPSAppModule[] | null = null;

  getAllPSAppModules(): IPSAppModule[] | null {
    if (this.allpsappmodules == null) {
      this.allpsappmodules = this.fillChildListModel(this.M.getAllPSAppModules, 'app.IPSAppModule') as IPSAppModule[];
    }
    return this.allpsappmodules;
  }

  get allPSAppModules(): IPSAppModule[] | null {
    return this.getAllPSAppModules();
  }

  findPSAppModule(objKey: any): IPSAppModule | null {
    return this.getPSModel5('app.IPSAppModule', this.getAllPSAppModules(), objKey) as IPSAppModule;
  }

  protected allpsappmsgtempls: IPSAppMsgTempl[] | null = null;

  getAllPSAppMsgTempls(): IPSAppMsgTempl[] | null {
    if (this.allpsappmsgtempls == null) {
      this.allpsappmsgtempls = this.fillChildListModel(this.M.getAllPSAppMsgTempls, 'app.msg.IPSAppMsgTempl') as IPSAppMsgTempl[];
    }
    return this.allpsappmsgtempls;
  }

  get allPSAppMsgTempls(): IPSAppMsgTempl[] | null {
    return this.getAllPSAppMsgTempls();
  }

  findPSAppMsgTempl(objKey: any): IPSAppMsgTempl | null {
    return this.getPSModel5('app.msg.IPSAppMsgTempl', this.getAllPSAppMsgTempls(), objKey) as IPSAppMsgTempl;
  }

  protected allpsapppfpluginrefs: IPSAppPFPluginRef[] | null = null;

  getAllPSAppPFPluginRefs(): IPSAppPFPluginRef[] | null {
    if (this.allpsapppfpluginrefs == null) {
      this.allpsapppfpluginrefs = this.fillChildListModel(this.M.getAllPSAppPFPluginRefs, 'app.res.IPSAppPFPluginRef') as IPSAppPFPluginRef[];
    }
    return this.allpsapppfpluginrefs;
  }

  get allPSAppPFPluginRefs(): IPSAppPFPluginRef[] | null {
    return this.getAllPSAppPFPluginRefs();
  }

  findPSAppPFPluginRef(objKey: any): IPSAppPFPluginRef | null {
    return this.getPSModel5('app.res.IPSAppPFPluginRef', this.getAllPSAppPFPluginRefs(), objKey) as IPSAppPFPluginRef;
  }

  protected allpsapppkgs: IPSAppPkg[] | null = null;

  getAllPSAppPkgs(): IPSAppPkg[] | null {
    if (this.allpsapppkgs == null) {
      this.allpsapppkgs = this.fillChildListModel(this.M.getAllPSAppPkgs, 'app.IPSAppPkg') as IPSAppPkg[];
    }
    return this.allpsapppkgs;
  }

  get allPSAppPkgs(): IPSAppPkg[] | null {
    return this.getAllPSAppPkgs();
  }

  findPSAppPkg(objKey: any): IPSAppPkg | null {
    return this.getPSModel5('app.IPSAppPkg', this.getAllPSAppPkgs(), objKey) as IPSAppPkg;
  }

  protected allpsappportletcats: IPSAppPortletCat[] | null = null;

  getAllPSAppPortletCats(): IPSAppPortletCat[] | null {
    if (this.allpsappportletcats == null) {
      this.allpsappportletcats = this.fillChildListModel(this.M.getAllPSAppPortletCats, 'app.control.IPSAppPortletCat') as IPSAppPortletCat[];
    }
    return this.allpsappportletcats;
  }

  get allPSAppPortletCats(): IPSAppPortletCat[] | null {
    return this.getAllPSAppPortletCats();
  }

  findPSAppPortletCat(objKey: any): IPSAppPortletCat | null {
    return this.getPSModel5('app.control.IPSAppPortletCat', this.getAllPSAppPortletCats(), objKey) as IPSAppPortletCat;
  }

  protected allpsappportlets: IPSAppPortlet[] | null = null;

  getAllPSAppPortlets(): IPSAppPortlet[] | null {
    if (this.allpsappportlets == null) {
      this.allpsappportlets = this.fillChildListModel(this.M.getAllPSAppPortlets, 'app.control.IPSAppPortlet') as IPSAppPortlet[];
    }
    return this.allpsappportlets;
  }

  get allPSAppPortlets(): IPSAppPortlet[] | null {
    return this.getAllPSAppPortlets();
  }

  findPSAppPortlet(objKey: any): IPSAppPortlet | null {
    return this.getPSModel5('app.control.IPSAppPortlet', this.getAllPSAppPortlets(), objKey) as IPSAppPortlet;
  }

  protected allpsappresources: IPSAppResource[] | null = null;

  getAllPSAppResources(): IPSAppResource[] | null {
    if (this.allpsappresources == null) {
      this.allpsappresources = this.fillChildListModel(this.M.getAllPSAppResources, 'app.IPSAppResource') as IPSAppResource[];
    }
    return this.allpsappresources;
  }

  get allPSAppResources(): IPSAppResource[] | null {
    return this.getAllPSAppResources();
  }

  findPSAppResource(objKey: any): IPSAppResource | null {
    return this.getPSModel5('app.IPSAppResource', this.getAllPSAppResources(), objKey) as IPSAppResource;
  }

  protected allpsappsubviewtyperefs: IPSAppSubViewTypeRef[] | null = null;

  getAllPSAppSubViewTypeRefs(): IPSAppSubViewTypeRef[] | null {
    if (this.allpsappsubviewtyperefs == null) {
      this.allpsappsubviewtyperefs = this.fillChildListModel(this.M.getAllPSAppSubViewTypeRefs, 'app.res.IPSAppSubViewTypeRef') as IPSAppSubViewTypeRef[];
    }
    return this.allpsappsubviewtyperefs;
  }

  get allPSAppSubViewTypeRefs(): IPSAppSubViewTypeRef[] | null {
    return this.getAllPSAppSubViewTypeRefs();
  }

  findPSAppSubViewTypeRef(objKey: any): IPSAppSubViewTypeRef | null {
    return this.getPSModel5('app.res.IPSAppSubViewTypeRef', this.getAllPSAppSubViewTypeRefs(), objKey) as IPSAppSubViewTypeRef;
  }

  protected allpsappuilogics: IPSAppUILogic[] | null = null;

  getAllPSAppUILogics(): IPSAppUILogic[] | null {
    if (this.allpsappuilogics == null) {
      this.allpsappuilogics = this.fillChildListModel(this.M.getAllPSAppUILogics, 'app.logic.IPSAppUILogic') as IPSAppUILogic[];
    }
    return this.allpsappuilogics;
  }

  get allPSAppUILogics(): IPSAppUILogic[] | null {
    return this.getAllPSAppUILogics();
  }

  findPSAppUILogic(objKey: any): IPSAppUILogic | null {
    return this.getPSModel5('app.logic.IPSAppUILogic', this.getAllPSAppUILogics(), objKey) as IPSAppUILogic;
  }

  protected allpsappuistyles: IPSAppUIStyle[] | null = null;

  getAllPSAppUIStyles(): IPSAppUIStyle[] | null {
    if (this.allpsappuistyles == null) {
      this.allpsappuistyles = this.fillChildListModel(this.M.getAllPSAppUIStyles, 'app.IPSAppUIStyle') as IPSAppUIStyle[];
    }
    return this.allpsappuistyles;
  }

  get allPSAppUIStyles(): IPSAppUIStyle[] | null {
    return this.getAllPSAppUIStyles();
  }

  findPSAppUIStyle(objKey: any): IPSAppUIStyle | null {
    return this.getPSModel5('app.IPSAppUIStyle', this.getAllPSAppUIStyles(), objKey) as IPSAppUIStyle;
  }

  protected allpsappuithemes: IPSAppUITheme[] | null = null;

  getAllPSAppUIThemes(): IPSAppUITheme[] | null {
    if (this.allpsappuithemes == null) {
      this.allpsappuithemes = this.fillChildListModel(this.M.getAllPSAppUIThemes, 'app.theme.IPSAppUITheme') as IPSAppUITheme[];
    }
    return this.allpsappuithemes;
  }

  get allPSAppUIThemes(): IPSAppUITheme[] | null {
    return this.getAllPSAppUIThemes();
  }

  findPSAppUITheme(objKey: any): IPSAppUITheme | null {
    return this.getPSModel5('app.theme.IPSAppUITheme', this.getAllPSAppUIThemes(), objKey) as IPSAppUITheme;
  }

  protected allpsappusermodes: IPSAppUserMode[] | null = null;

  getAllPSAppUserModes(): IPSAppUserMode[] | null {
    if (this.allpsappusermodes == null) {
      this.allpsappusermodes = this.fillChildListModel(this.M.getAllPSAppUserModes, 'app.usermode.IPSAppUserMode') as IPSAppUserMode[];
    }
    return this.allpsappusermodes;
  }

  get allPSAppUserModes(): IPSAppUserMode[] | null {
    return this.getAllPSAppUserModes();
  }

  findPSAppUserMode(objKey: any): IPSAppUserMode | null {
    return this.getPSModel5('app.usermode.IPSAppUserMode', this.getAllPSAppUserModes(), objKey) as IPSAppUserMode;
  }

  protected allpsapputilpages: IPSAppUtilPage[] | null = null;

  getAllPSAppUtilPages(): IPSAppUtilPage[] | null {
    if (this.allpsapputilpages == null) {
      this.allpsapputilpages = this.fillChildListModel(this.M.getAllPSAppUtilPages, 'app.IPSAppUtilPage') as IPSAppUtilPage[];
    }
    return this.allpsapputilpages;
  }

  get allPSAppUtilPages(): IPSAppUtilPage[] | null {
    return this.getAllPSAppUtilPages();
  }

  findPSAppUtilPage(objKey: any): IPSAppUtilPage | null {
    return this.getPSModel5('app.IPSAppUtilPage', this.getAllPSAppUtilPages(), objKey) as IPSAppUtilPage;
  }

  protected allpsapputils: IPSAppUtil[] | null = null;

  getAllPSAppUtils(): IPSAppUtil[] | null {
    if (this.allpsapputils == null) {
      this.allpsapputils = this.fillChildListModel(this.M.getAllPSAppUtils, 'app.util.IPSAppUtil') as IPSAppUtil[];
    }
    return this.allpsapputils;
  }

  get allPSAppUtils(): IPSAppUtil[] | null {
    return this.getAllPSAppUtils();
  }

  findPSAppUtil(objKey: any): IPSAppUtil | null {
    return this.getPSModel5('app.util.IPSAppUtil', this.getAllPSAppUtils(), objKey) as IPSAppUtil;
  }

  protected allpsappviewmsggroups: IPSAppViewMsgGroup[] | null = null;

  getAllPSAppViewMsgGroups(): IPSAppViewMsgGroup[] | null {
    if (this.allpsappviewmsggroups == null) {
      this.allpsappviewmsggroups = this.fillChildListModel(this.M.getAllPSAppViewMsgGroups, 'app.view.IPSAppViewMsgGroup') as IPSAppViewMsgGroup[];
    }
    return this.allpsappviewmsggroups;
  }

  get allPSAppViewMsgGroups(): IPSAppViewMsgGroup[] | null {
    return this.getAllPSAppViewMsgGroups();
  }

  findPSAppViewMsgGroup(objKey: any): IPSAppViewMsgGroup | null {
    return this.getPSModel5('app.view.IPSAppViewMsgGroup', this.getAllPSAppViewMsgGroups(), objKey) as IPSAppViewMsgGroup;
  }

  protected allpsappviewmsgs: IPSAppViewMsg[] | null = null;

  getAllPSAppViewMsgs(): IPSAppViewMsg[] | null {
    if (this.allpsappviewmsgs == null) {
      this.allpsappviewmsgs = this.fillChildListModel(this.M.getAllPSAppViewMsgs, 'app.view.IPSAppViewMsg') as IPSAppViewMsg[];
    }
    return this.allpsappviewmsgs;
  }

  get allPSAppViewMsgs(): IPSAppViewMsg[] | null {
    return this.getAllPSAppViewMsgs();
  }

  findPSAppViewMsg(objKey: any): IPSAppViewMsg | null {
    return this.getPSModel5('app.view.IPSAppViewMsg', this.getAllPSAppViewMsgs(), objKey) as IPSAppViewMsg;
  }

  protected allpsappviews: IPSAppView[] | null = null;

  getAllPSAppViews(): IPSAppView[] | null {
    if (this.allpsappviews == null) {
      this.allpsappviews = this.fillChildListModel(this.M.getAllPSAppViews, 'app.view.IPSAppView') as IPSAppView[];
    }
    return this.allpsappviews;
  }

  get allPSAppViews(): IPSAppView[] | null {
    return this.getAllPSAppViews();
  }

  findPSAppView(objKey: any): IPSAppView | null {
    return this.getPSModel5('app.view.IPSAppView', this.getAllPSAppViews(), objKey) as IPSAppView;
  }

  protected allpsappwfs: IPSAppWF[] | null = null;

  getAllPSAppWFs(): IPSAppWF[] | null {
    if (this.allpsappwfs == null) {
      this.allpsappwfs = this.fillChildListModel(this.M.getAllPSAppWFs, 'app.wf.IPSAppWF') as IPSAppWF[];
    }
    return this.allpsappwfs;
  }

  get allPSAppWFs(): IPSAppWF[] | null {
    return this.getAllPSAppWFs();
  }

  findPSAppWF(objKey: any): IPSAppWF | null {
    return this.getPSModel5('app.wf.IPSAppWF', this.getAllPSAppWFs(), objKey) as IPSAppWF;
  }

  protected allpsdeopprivs: IPSDEOPPriv[] | null = null;

  getAllPSDEOPPrivs(): IPSDEOPPriv[] | null {
    if (this.allpsdeopprivs == null) {
      this.allpsdeopprivs = this.fillChildListModel(this.M.getAllPSDEOPPrivs, 'dataentity.priv.IPSDEOPPriv') as IPSDEOPPriv[];
    }
    return this.allpsdeopprivs;
  }

  get allPSDEOPPrivs(): IPSDEOPPriv[] | null {
    return this.getAllPSDEOPPrivs();
  }

  findPSDEOPPriv(objKey: any): IPSDEOPPriv | null {
    return this.getPSModel5('dataentity.priv.IPSDEOPPriv', this.getAllPSDEOPPrivs(), objKey) as IPSDEOPPriv;
  }

  protected allpssubapprefs: IPSSubAppRef[] | null = null;

  getAllPSSubAppRefs(): IPSSubAppRef[] | null {
    if (this.allpssubapprefs == null) {
      this.allpssubapprefs = this.fillChildListModel(this.M.getAllPSSubAppRefs, 'app.IPSSubAppRef') as IPSSubAppRef[];
    }
    return this.allpssubapprefs;
  }

  get allPSSubAppRefs(): IPSSubAppRef[] | null {
    return this.getAllPSSubAppRefs();
  }

  findPSSubAppRef(objKey: any): IPSSubAppRef | null {
    return this.getPSModel5('app.IPSSubAppRef', this.getAllPSSubAppRefs(), objKey) as IPSSubAppRef;
  }

  protected allpssystestprjs: IPSSysTestPrj[] | null = null;

  getAllPSSysTestPrjs(): IPSSysTestPrj[] | null {
    if (this.allpssystestprjs == null) {
      this.allpssystestprjs = this.fillChildListModel(this.M.getAllPSSysTestPrjs, 'testing.IPSSysTestPrj') as IPSSysTestPrj[];
    }
    return this.allpssystestprjs;
  }

  get allPSSysTestPrjs(): IPSSysTestPrj[] | null {
    return this.getAllPSSysTestPrjs();
  }

  findPSSysTestPrj(objKey: any): IPSSysTestPrj | null {
    return this.getPSModel5('testing.IPSSysTestPrj', this.getAllPSSysTestPrjs(), objKey) as IPSSysTestPrj;
  }

  get appFolder(): string {
    return this.M.appFolder;
  }

  get appMode(): 'DEFAULT' | 'CLOUDHUBAPP' | 'CLOUDHUBSUBAPP' | 'WFAPP' | 'USER' | 'USER2' | 'USER3' | 'USER4' {
    return this.M.appMode;
  }

  get appTag(): string {
    return this.M.appTag;
  }

  get appTag2(): string {
    return this.M.appTag2;
  }

  get appTag3(): string {
    return this.M.appTag3;
  }

  get appTag4(): string {
    return this.M.appTag4;
  }

  get appVersion(): string {
    return this.M.appVersion;
  }

  get buttonNoPrivDisplayMode(): 1 | 2 | 6 {
    return this.M.buttonNoPrivDisplayMode;
  }

  get codeName(): string {
    return this.M.codeName;
  }

  protected defaultappviewpssyscss: IPSSysCss | null = null;

  getDefaultAppViewPSSysCss(): IPSSysCss | null {
    if (this.defaultappviewpssyscss != null) return this.defaultappviewpssyscss;
    const value = this.M.getDefaultAppViewPSSysCss;
    if (value == null) {
      return null;
    }
    this.defaultappviewpssyscss = this.getPSModel4('res.IPSSysCss', value, 'getDefaultAppViewPSSysCss') as IPSSysCss;
    return this.defaultappviewpssyscss;
  }

  get defaultAppViewPSSysCss(): IPSSysCss | null {
    return this.getDefaultAppViewPSSysCss();
  }

  getDefaultAppViewPSSysCssMust(): IPSSysCss {
    const value = this.getDefaultAppViewPSSysCss();
    if (value == null) {
      throw new Error('未指定默认应用视图界面样式');
    }
    return value;
  }

  get defaultControlStyle(): string {
    return this.M.defaultControlStyle;
  }

  get defaultFlag(): boolean {
    return this.M.defaultFlag;
  }

  protected defaultpsappindexview: IPSAppIndexView | null = null;

  getDefaultPSAppIndexView(): IPSAppIndexView | null {
    if (this.defaultpsappindexview != null) return this.defaultpsappindexview;
    const value = this.M.getDefaultPSAppIndexView;
    if (value == null) {
      return null;
    }
    this.defaultpsappindexview = this.getPSModel4('app.view.IPSAppIndexView', value, 'getDefaultPSAppIndexView') as IPSAppIndexView;
    return this.defaultpsappindexview;
  }

  get defaultPSAppIndexView(): IPSAppIndexView | null {
    return this.getDefaultPSAppIndexView();
  }

  getDefaultPSAppIndexViewMust(): IPSAppIndexView {
    const value = this.getDefaultPSAppIndexView();
    if (value == null) {
      throw new Error('未指定启动首页视图');
    }
    return value;
  }

  get dynaModelFilePath(): string {
    return this.M.dynaModelFilePath;
  }

  get engineVer(): number {
    return this.M.engineVer;
  }

  get formItemEmptyText(): string {
    return this.M.formItemEmptyText;
  }

  get formItemNoPrivDisplayMode(): 1 | 2 {
    return this.M.formItemNoPrivDisplayMode;
  }

  get gridColumnEnableFilter(): 0 | 1 | 2 {
    return this.M.gridColumnEnableFilter;
  }

  get gridColumnEnableLink(): 0 | 1 | 2 {
    return this.M.gridColumnEnableLink;
  }

  get gridColumnNoPrivDisplayMode(): 1 | 2 {
    return this.M.gridColumnNoPrivDisplayMode;
  }

  get gridRowActiveMode(): 0 | 1 | 2 {
    return this.M.gridRowActiveMode;
  }

  get mDCtrlEmptyText(): string {
    return this.M.mDCtrlEmptyText;
  }

  protected mdctrlemptytextpslanguageres: IPSLanguageRes | null = null;

  getMDCtrlEmptyTextPSLanguageRes(): IPSLanguageRes | null {
    if (this.mdctrlemptytextpslanguageres != null) return this.mdctrlemptytextpslanguageres;
    const value = this.M.getMDCtrlEmptyTextPSLanguageRes;
    if (value == null) {
      return null;
    }
    this.mdctrlemptytextpslanguageres = this.getPSModel4('res.IPSLanguageRes', value, 'getMDCtrlEmptyTextPSLanguageRes') as IPSLanguageRes;
    return this.mdctrlemptytextpslanguageres;
  }

  get mDCtrlEmptyTextPSLanguageRes(): IPSLanguageRes | null {
    return this.getMDCtrlEmptyTextPSLanguageRes();
  }

  getMDCtrlEmptyTextPSLanguageResMust(): IPSLanguageRes {
    const value = this.getMDCtrlEmptyTextPSLanguageRes();
    if (value == null) {
      throw new Error('未指定多数据部件默认无值内容语言资源');
    }
    return value;
  }

  get mainMenuAlign(): 'LEFT' | 'TOP' | 'CENTER' | 'TREEEXP' | 'TABEXP_TOP' | 'TABEXP_LEFT' | 'TABEXP_BOTTOM' | 'TABEXP_RIGHT' | 'NONE' {
    return this.M.mainMenuAlign;
  }

  get memo(): string {
    return this.M.memo;
  }

  get name(): string {
    return this.M.name;
  }

  get pFStyle(): string {
    return this.M.pFStyle;
  }

  get pFType(): string {
    return this.M.pFType;
  }

  get pKGCodeName(): string {
    return this.M.pKGCodeName;
  }

  protected psapplicationlogics: IPSApplicationLogic[] | null = null;

  getPSApplicationLogics(): IPSApplicationLogic[] | null {
    if (this.psapplicationlogics == null) {
      this.psapplicationlogics = this.fillChildListModel(this.M.getPSApplicationLogics, 'app.IPSApplicationLogic') as IPSApplicationLogic[];
    }
    return this.psapplicationlogics;
  }

  get psApplicationLogics(): IPSApplicationLogic[] | null {
    return this.getPSApplicationLogics();
  }

  findPSApplicationLogic(objKey: any): IPSApplicationLogic | null {
    return this.getPSModel5('app.IPSApplicationLogic', this.getPSApplicationLogics(), objKey) as IPSApplicationLogic;
  }

  protected pssyssfplugin: IPSSysSFPlugin | null = null;

  getPSSysSFPlugin(): IPSSysSFPlugin | null {
    if (this.pssyssfplugin != null) return this.pssyssfplugin;
    const value = this.M.getPSSysSFPlugin;
    if (value == null) {
      return null;
    }
    this.pssyssfplugin = this.getPSModel4('res.IPSSysSFPlugin', value, 'getPSSysSFPlugin') as IPSSysSFPlugin;
    return this.pssyssfplugin;
  }

  get psSysSFPlugin(): IPSSysSFPlugin | null {
    return this.getPSSysSFPlugin();
  }

  getPSSysSFPluginMust(): IPSSysSFPlugin {
    const value = this.getPSSysSFPlugin();
    if (value == null) {
      throw new Error('未指定后端扩展插件');
    }
    return value;
  }

  get serviceCodeName(): string {
    return this.M.serviceCodeName;
  }

  get sysCodeName(): string {
    return this.M.sysCodeName;
  }

  get uIStyle(): 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4' | 'STYLE5' | 'STYLE6' | 'STYLE7' | 'STYLE8' | 'STYLE9' | 'STYLE10' | 'PREVIEW' {
    return this.M.uIStyle;
  }

  get userCat(): string {
    return this.M.userCat;
  }

  get userTag(): string {
    return this.M.userTag;
  }

  get userTag2(): string {
    return this.M.userTag2;
  }

  get userTag3(): string {
    return this.M.userTag3;
  }

  get userTag4(): string {
    return this.M.userTag4;
  }

  get enableCol12ToCol24(): boolean {
    return this.M.enableCol12ToCol24;
  }

  get enableDynaDashboard(): boolean {
    return this.M.enableDynaDashboard;
  }

  get enableFilterStorage(): boolean {
    return this.M.enableFilterStorage;
  }

  get enableServiceAPIDTO(): boolean {
    return this.M.enableServiceAPIDTO != null ? this.M.enableServiceAPIDTO : false;
  }

  get enableUACLogin(): boolean {
    return this.M.enableUACLogin;
  }

  get enableUIModelEx(): boolean {
    return this.M.enableUIModelEx != null ? this.M.enableUIModelEx : false;
  }

  get gridEnableCustomized(): boolean {
    return this.M.gridEnableCustomized;
  }

  get gridForceFit(): boolean {
    return this.M.gridForceFit;
  }

  get mobileApp(): boolean {
    return this.M.mobileApp;
  }

  get outputFormItemUpdatePrivTag(): boolean {
    return this.M.outputFormItemUpdatePrivTag;
  }

  get useServiceApi(): boolean {
    return this.M.useServiceApi;
  }

  get wFAppMode(): boolean {
    return this.M.wFAppMode;
  }

  get cls(): string {
    return 'PSApplicationImpl';
  }

  instanceof(cls: string): boolean {
    if (cls == 'IPSModelObject' || cls == 'IPSObject' || cls == 'app.IPSApplication' || cls == 'app.IPSApplicationUI') return true;
    return super.instanceof(cls);
  }
}
